package com.flynn.rock.crm.service.customer;

import com.flynn.rock.crm.model.customer.request.CancelledCustomerOrderRequest;
import com.flynn.rock.crm.model.customer.request.FinishedCustomerOrderRequest;
import com.flynn.rock.crm.model.customer.request.NewInvitationRequest;
import com.flynn.rock.crm.model.customer.request.PageCustomerOrderRequest;
import com.flynn.rock.crm.model.customer.request.SignedCustomerOrderRequest;
import com.flynn.rock.crm.model.customer.request.VisitedCustomerOrderRequest;
import com.flynn.rock.crm.model.customer.vo.CustomerOrderIdVo;
import com.flynn.rock.crm.model.customer.vo.CustomerOrderVo;
import com.flynn.rock.model.PageResult;

public interface BusinessService {

    CustomerOrderIdVo invitationCustomerOrder(NewInvitationRequest request);

    CustomerOrderIdVo visitedCustomerOrder(VisitedCustomerOrderRequest request);

    CustomerOrderIdVo signedCustomerOrder(SignedCustomerOrderRequest request);

    CustomerOrderIdVo finishedCustomerOrder(FinishedCustomerOrderRequest request);

    CustomerOrderIdVo cancelledCustomerOrder(CancelledCustomerOrderRequest request);

    PageResult<CustomerOrderVo> pageCustomerOrder(PageCustomerOrderRequest request);

    CustomerOrderVo getCustomerOrder(Long customerOrderId);

    void deleteCustomerOrder(Long customerOrderId);
}
